\documentclass{beamer}
\usepackage{multirow}
\usepackage{ctex}
\usepackage{graphicx}
\usepackage{xcolor}
\usepackage{multicol}
\usetheme{Madrid}

\author{uncle-lu}
\title{生命不息,搞事不止}
\subtitle[sbt]{第二讲}
\institute{乌鲁木齐市第一中学}
\date{\today}

\begin{document}

\frame{\titlepage}

\begin{frame}
	\frametitle{说在前面的话}

	\begin{itemize}
		\item 机房修改开放时间.
			\pause
		\item 买书.
			\pause
		\item 记笔记的重要性.
			\pause
		\item 关于进度问题.
	\end{itemize}

	\pause

	\begin{center}
		加群:

		总群:679890733

		周天晚上学姐开黑小组:563031213

		\includegraphics[width=0.3\textwidth]{QQ.jpg}
	\end{center}

\end{frame}

\begin{frame}

	\frametitle{我们这节课要干什么?}

	\begin{multicols}{2}
		\tableofcontents
	\end{multicols}

\end{frame}

\section{复习与提问}
\begin{frame}
	\frametitle{复习与提问}
	\begin{figure}[htbp]
		\centering
		\includegraphics[width=1\textwidth]{b.png}
	\end{figure}
\end{frame}

\section{深度讨论数据类型的特性}
\subsection{复习}
\begin{frame}
	\frametitle{我们之前讲过}
	\begin{table}
		\begin{tabular}{|c|c|c|}
			\hline
			表示 & 名称 & 范围 \\
			\hline
			int & 整型 & \([-2147483648,2147483647]\)\\
			\hline
			long long int &长整型& \([-2^{63},2^{63}-1]\)\\
			\hline
			double & 双精度 & \([-1.7E308,1.7E+308]\)\\
			\hline
			char & 字符型 & 所有字符\\
			\hline 
			bool & 布尔类型 & True or False\\
			\hline
		\end{tabular}
		\caption{数据类型总结1.1}
	\end{table} 
\end{frame}

\subsection{内存大小}

\begin{frame}
	\frametitle{但是这样不够!}
	\begin{table}
		\begin{tabular}{|c|c|c|c|}
			\hline
			表示 & 名称 & 内存大小 &范围 \\
			\hline
			int & 整型 & 4字节  &\([-2147483648,2147483647]\)\\
			\hline
			long long int &长整型& 8字节  & \([-2^{63},2^{63}-1]\)\\
			\hline
			float & 单精度 & 4字节 & 不知道\\
			\hline
			double & 双精度 & 8字节& \([-1.7E308,1.7E+308]\)\\
			\hline
			char & 字符型 & 2字节 &所有字符\\
			\hline 
			bool & 布尔类型 & 1字节 &True or False\\
			\hline
		\end{tabular}
		\caption{数据类型总结1.2}
	\end{table} 
\end{frame}

\begin{frame}
	\frametitle{内存大小?}

	\begin{itemize}
		\item 1KB=1024B=1024字节
			\pause
		\item 1MB=1024KB=1,048,576字节
			\pause
		\item 1GB=1024MB=1,073,741,824字节
		\item 1TB=1024GB=1,099,511,627,776字节
	\end{itemize}

\end{frame}

\subsection{类型转化}
\begin{frame}
	\frametitle{数据类型之间的转化}

	\pause

	\begin{center}
		\Huge{强转}
	\end{center}

	\pause

	我们在值前面加上括号.括号内表明我们想强转成的类型.C++会将值转化成你想要的类型.

	\pause

	\begin{block}{举例说明}
		\begin{center}
			long long int k=233;

			int x=(int)k;
		\end{center}
	\end{block}

\end{frame}

\subsection{字符类型的研究}

\begin{frame}
	\frametitle{字符}

	char 

	我们知道它用与存储 '字符' 显示屏上显示出来的大部分都是由字符组成.

	而字符相当于一种表现形式.

	而字符内部存储的值.我们有一个规定.

	这个规定就是 ASCII(American Standard Code for Information Interchange，美国信息交换标准代码)

\end{frame}

\section{高级使用格式化输入函数与格式化输出函数.}

\subsection{格式化输入函数}

\begin{frame}
	\centering
	\Huge{深入研究格式化输入函数与格式化输出函数}
\end{frame}

\begin{frame}
	\frametitle{格式化?}
	\begin{center}
	
		\textcolor{red}{int scanf ( const char * format, ... );}


		A format specifier for scanf follows this prototype:

		\%[*][width][length]specifier 
	\end{center}
	
	摘自:http://www.cplusplus.com/reference/cstdio/scanf 
\end{frame}

\subsubsection{格式化}

\begin{frame}
	\frametitle{格式化!}

	简单来说.

	我们调用scanf函数时需要往里面传送2种参数.

	\pause

	\begin{itemize}
		\item 格式串.
		\item 地址列表.
	\end{itemize}

\end{frame}

\subsubsection{格式串}

\begin{frame}
	\frametitle{格式串}

	我们格式串.是由字符组成的字符串.然后通过串内的 ' \% '  来进行转义. 

	从而告诉C++输入格式.

	因为是字符串.所以我们需要用双引号来将格式串框起来.

	所以说才有的. 形如'\%d \%lf \%c'的输入格式符.

	\pause

	\begin{block}{常见错误}
		\begin{itemize}
			\item 格式串与地址列表内的数量不匹配.
				\pause
			\item 数据类型搞错.
				\pause
			\item 地址符没加.
				\pause
			\item 压根不会. (这个\ldots\ldots)
		\end{itemize}
	\end{block}

\end{frame}

\subsubsection{地址列表}

\begin{frame}
	\frametitle{地址列表}

	\begin{center}
		\begin{Huge}
			我们来找人问一下什么是地址.
		\end{Huge}
	\end{center}

	\pause

	\begin{center}
		\textbf{我们地址列表需要用逗号将每一个地址隔开.}
	\end{center}

\end{frame}

\begin{frame}
	\frametitle{注意!!}

	scanf格式输入的时候.

	由于我们定义了要输入的数据类型.所以我们在输入的时候如果加了其他类型.在读完当前命令前是会自动忽略多余的东西.

	\pause \textbf{比如说:}

	我们要求输入两个数.

	我们输入的时候会打空格将两个数分开.但是在格式串内.是不用空格分格的.因为是会自动忽略.

\end{frame}

\subsubsection{样例}

\begin{frame}
	\frametitle{样例}

	\begin{block}{输入两个整数.(a与b)}
		scanf(\" \%d\%d \", \&a,\&b);
	\end{block}

	\pause

	\begin{block}{输入一个实数与一个整数.(a and b)}
		scanf(\" \%lf\%d \" , \&a,\&b);
	\end{block}
\end{frame}

\subsection{格式化输出函数}

\begin{frame}
	\frametitle{格式化输出函数}

	其实格式化输出函数与输入大体上一样.


	我们调用printf函数时需要往里面传送2种参数.

	\pause

	\begin{itemize}
		\item 格式串.
		\item \textbf{值列表.}
	\end{itemize}
\end{frame}

\begin{frame}
	\frametitle{值列表}

	就是值组成的列表.用逗号隔开.没有什么骚操作>\_<

\end{frame}

\section{浅谈各类运算符与表达式.}
\begin{frame}
	\centering
	\Huge{浅谈各类运算符与表达式}
\end{frame}

\begin{frame}
	\frametitle{运算符?}

	\begin{itemize}
		\item 算术运算符.
		\item 赋值运算符.
		\item 逻辑运算符.
		\item 关系运算符.
	\end{itemize}

\end{frame}

\subsection{算术运算符}

\begin{frame}
	\frametitle{算术运算符}
	\centering
	+ \quad - \quad * \quad / \quad \% \quad ( \quad )

	运算规则严格按照数学内的要求.

	但是由于C++里只有小括号能参与运算

	所以可以有括号套括号的操作

\end{frame}

\begin{frame}
	\frametitle{实例}

	\begin{block}{计算(a*b+c-d)的值?}

		(a*b+c-d)

	\end{block}

\end{frame}

\subsection{赋值运算符}

\begin{frame}
	\frametitle{赋值运算符}
	\begin{center}
		\begin{Huge}
			\textbf{=}
		\end{Huge}
	\end{center}

	\begin{block}{运用}
		变量=值.

		变量=变量.

		变量=表达式.
	\end{block}

\end{frame}

\subsection{逻辑运算符}

\begin{frame}
	\frametitle{逻辑运算符}

	在C++中.逻辑运算后的值 只有2种 .

	真 或 假.

	\begin{block}{运算符}
		\begin{center}
			与\quad \&\&

			或\quad  ||

			非\quad  !
		\end{center}
	\end{block}

\end{frame}

\begin{frame}
	\frametitle{实例}

	\begin{block}{求表达式的值}
		True \&\& ( False || True )
	\end{block}

	\pause

	\begin{block}{求表达式的值}
		(!False) || ( True || ( True \&\& False) )
	\end{block}

\end{frame}

\subsection{关系运算符}

\begin{frame}
	\frametitle{关系运算符}

	用于比较运算.关系运算后值也只有两种.

	\begin{block}{表达式}
		\begin{center}
			A<=B

			A>=B

			A == B

			A>B

			A!=B
		\end{center}
	\end{block}

\end{frame}

\begin{frame}
	\frametitle{实例}

	\begin{block}{求表达式的值}
		int a=1;

		int b=2;

		a < b
	\end{block}

	\pause

	\begin{block}{求表达式的值}
		2333 > 3444
	\end{block}

\end{frame}

\section{浅谈条件判断语句.}

\begin{frame}
	\frametitle{浅谈条件判断语句}
	有一天

	颖ying给uncle-lu打电话：“回家顺路买一斤包子带回来，如果看到卖西瓜的，买一个。” 
	
	当晚，uncle-lu手捧一个包子进了家门。
	
	颖ying怒道：“你怎么就买了一个包子？！” 
	
	uncle-lu答曰：“因为\textbf{看到了卖西瓜的}。”

\end{frame}

\begin{frame}
	\frametitle{条件判断}

	格式1:

	if(\ldots)

	\{

	\quad\ldots

	\}

	如果if小括号内的值为真.

	则运行大括号内的语句.

	否则跳过.

\end{frame}

\begin{frame}
	\frametitle{条件判断}

	格式2:

	if(\ldots)

	\{

	\quad1\ldots

	\}

	else 

	\{

	\quad 2\ldots

	\}


	如果if小括号内的值为真.

	则运行大括号 1 内的语句.

	否则运行大括号2内的语句.

\end{frame}

\begin{frame}
	\frametitle{条件判断}

	格式3:

	我在黑板上写一下\ldots

\end{frame}

\begin{frame}
	\frametitle{实例}

	请问a的值到底是多少?

	int a=1;

	if(a\%2)
	\{

	\quad	a=a+1;

	\}

	if(a\%2)

	\{

	\quad a=a+1;

	\}

\end{frame}


\section{题目训练}

\begin{frame}

	\centering

	\Huge{实践是检验真理的唯一标准}

\end{frame}

\begin{frame}

	\begin{center}
		\Huge
		Thanks!

		主讲人:uncle-lu
	\end{center}

\end{frame}

\end{document}
